<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script>
        let arr = [1, 3, 5, 7];
        let arr1 = [2, 4, 6, 8];
        console.log(...arr); // 展开一个数组
        let arr2 = [...arr, ...arr1]; // 合并两个数组(连接数组)

        // 在函数中使用
        function name(...nums) {
            return nums.reduce((a, b) => a + b); // 累加求和           
        }
        ; // 参数列表
        console.log(name(1, 2, 3, 4));

        // 构造字面量对象时使用展开语法
        const person = { name: 'tom', age: 18 };
        const person1 = { ...person }; // 合并对象
        // console.log(...person); // 报错，展开运算符不能用于对象
        person.name = 'jerry';
        console.log(person1); // 不会影响原来的对象
        console.log(person);

        // 合并
        const person2 = { ...person, gender: 'male' }; // 合并对象
        console.log(person2);
    </script>
</body>

</html>